< previous page page_242 next page >

Page 242
If your users normally enter standard units of measurement such as miles (mi.), kilometers (km), and so on, or other standards such as Street (St.) or Road (Rd.), Mr. or Mrs. or Ms., and megahertz (MHz), try to accommodate them by autopopulating them, structuring them into masks, or providing a drop-down list of these options. Do the same for date and time units.
Make calculate fields read-only. To give the user a visual clue, make the background color different from the other fields. Labels are good for read-only fields. You can do the same for fields that contain default data to indicate to the user that this field contains a default data item. When all data entry transactions are complete, make sure your Graphical User Interface Subsystem confirms all items entered on one or more forms. If accepted by the user, continue to the next process. If not, return to the form. If the form was in the process of being unloaded, set Cancel = True in the form's Query_Unload event.
These practical guidelines, full of advice, should help you understand many issues involved in designing a form or set of forms. Many developers think GUIs are easy and shouldn't take long. However, making a form usable can take considerable time, more so for complex projects.
Using the Modeling Techniques for GUIs
Traditionally, the development of graphical user interfaces has been reserved for pure artistic talent. Indeed, creativity is important when designing a user interface. Modeling a user interface requires more technical treatment, however.
Let's model a simple user interface. Figure 11.1 shows a generic user interface mechanism for controlling the flow of information into and out of a form. You will use the code from Day 6, Building and Testing Components. In that chapter, you had a form, frmAccountMaintForm, that was controlled by the FormController class instance, theFormController. The code for this interaction is shown in Listing 11.1. The FormController class interacted with the BasicPersonalChecking class instance, theBasicPersonalCheckingAccount, through the latter's adjustBalance method (see Listing 11.2).
12180-0242a.gif
Figure 11.1.
A generic user interface mechanism for controlling the flow of information into and
out of a form.

 
< previous page page_242 next page >

If you like this book, buy it!